/*           Copyright(c) 2005-2008 Dave Sexton            *
 *                   HtmlEditor Control                    *
 * http://www.codeplex.com/DocProject/Project/License.aspx *
 ***********************************************************/
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using mshtml;

namespace DaveSexton.Controls.Native
{
	/// <remarks>
	/// This class is defined in the <strong>MSHtml</strong> PIA, however, each method returns <c>void</c> instead of <c>Int32</c>.
	/// Returning a code such as <see cref="Constants.S_OK" /> or <see cref="Constants._S_FALSE" />, instead of throwing an exception, 
	/// may help to increase the performance of implementations since, otherwise, throwing an exception would be required to cancel the 
	/// default processing of any given event.
	/// </remarks>
	[Guid("3050F662-98B5-11CF-BB82-00AA00BDCE0B")]
	[InterfaceType(1)]
	internal interface IHTMLEditDesigner
	{
		[PreserveSig]
		[return: MarshalAs(UnmanagedType.Error)]
		int PostEditorEventNotify(int inEvtDispId, IHTMLEventObj pIEventObj);

		[PreserveSig]
		[return: MarshalAs(UnmanagedType.Error)]
		int PostHandleEvent(int inEvtDispId, IHTMLEventObj pIEventObj);

		[PreserveSig]
		[return: MarshalAs(UnmanagedType.Error)]
		int PreHandleEvent(int inEvtDispId, IHTMLEventObj pIEventObj);

		[PreserveSig]
		[return: MarshalAs(UnmanagedType.Error)]
		int TranslateAccelerator(int inEvtDispId, IHTMLEventObj pIEventObj);
	}
}
